home *** CD-ROM | disk | FTP | other *** search
/ The Best of MacTutor - S…e Code for Volumes 1 to 5 / The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin / Source Code / #50 (Nov 89) / Inside Code / Meter.h < prev    next >
Text File  |  1989-01-29  |  2KB  |  65 lines

  1. /* Meter.h - MeterRecord definition and interface function protoypes */
  2.  
  3. /* special partCode for meter */
  4. #define        inBackground    24
  5.  
  6. struct MeterRecord
  7.     {
  8.     struct MeterRecord        **nextMeter; /* or NULL */
  9.     WindowPtr        meterOwner;
  10.     Rect            meterRect;
  11.     Byte            meterVis;
  12.     Byte            meterHilite;
  13.     long            meterValue, meterMin, meterMax, needleValue;
  14.     /*ProcPtr            meterAction;*/
  15.     long            meterRfCon;
  16.     char            title[32]; /* pascal format, length byte first */
  17.     /* some additional fields */
  18.     Rect            incDownRect, incUpRect, pageDownRect, pageUpRect;
  19.     Rect            displayRect;
  20.     long            displayDivisor; /* power of ten */
  21.     int                needleShort, needleLong, halfNeedleWidth;
  22.     int                setShort, setLong, halfSetWidth;
  23.     PicHandle        backgroundH;
  24.     PolyHandle        incUpH, incDownH, pageUpH, pageDownH;
  25.     Point            dialCentre;
  26.     long            hasMeterID;
  27.     };
  28. typedef struct MeterRecord MeterRecord;
  29. typedef MeterRecord *MeterPtr;
  30. typedef MeterRecord **MeterHandle;
  31.  
  32. typedef void (*voidPtr)() ;
  33.  
  34. /* Functions defined in Meter.c */
  35. extern    MeterHandle    NewMeter(WindowPtr, Rect*, char*, Boolean, long, long, long, long);
  36. extern    void        DisposeMeter(MeterHandle);
  37. extern    void        KillMeters(WindowPtr);
  38. extern    void        SetMTitle(MeterHandle, char*);
  39. extern    void        GetMTitle(MeterHandle, char*);
  40. extern    void        HideMeter(MeterHandle);
  41. extern    void        ShowMeter(MeterHandle);
  42. extern    void        DrawMeters(WindowPtr);
  43. extern    void        HiliteMeter(MeterHandle, int);
  44. extern    int            FindMeter(Point, WindowPtr, MeterHandle*);
  45. extern    int            TrackMeter(MeterHandle, Point, voidPtr);
  46. extern    int            TestMeter(MeterHandle, Point);
  47. extern    void        MoveMeter(MeterHandle, int, int);
  48. extern    void        DragMeter(MeterHandle, Point, Rect*, Rect*, int);
  49. extern    void        SizeMeter(MeterHandle, int); /* note proportions are fixed */
  50. extern    void        SetMtrValue(MeterHandle, long);
  51. extern    long        GetMtrValue(MeterHandle);
  52. extern    void        SetMtrMin(MeterHandle, long);
  53. extern    long        GetMtrMin(MeterHandle);
  54. extern    void        SetMtrMax(MeterHandle, long);
  55. extern    long        GetMtrMax(MeterHandle);
  56. extern    void        SetMRefCon(MeterHandle, long);
  57. extern    long        GetMRefCon(MeterHandle);
  58. /* note multiple actions procs not supported in this simple version */
  59. extern    void        SetNeedleValue(MeterHandle, long);
  60. extern    long        GetNeedleValue(MeterHandle);
  61. extern    long        GetDisplayDivisor(MeterHandle);
  62. extern    Boolean        ValidMeter(MeterHandle);
  63. extern    int            GetMaxTitlePixels(MeterHandle);
  64. extern    void        MeterSnapshot(MeterHandle); /* draws meter to thePort
  65.     rather than meter's owning window */